#include <func.h>

int g_value = 1;  // 数据段

int main(int argc, char* argv[])
{
    int value = 2;  // 栈
    int *p = (int*)malloc(sizeof(int));   // 堆
    *p = 3;

    pid_t pid = fork(); // 创建子进程
    switch (pid) {
    case -1:
        perror("fork()");
        exit(1);
    case 0: 
        g_value *= 10;
        value *= 10;
        (*p) *= 10;
        printf("child: g_value = %d, value = %d, *p = %d\n", g_value, value, *p);
        break;
    default:
        sleep(1);
        printf("parent: g_value = %d, value = %d, *p = %d\n", g_value, value, *p);
        break;
    }
    return 0;
}

